“ARQ (Automatic Repeat reQuest)” and “FEC (Forward Error Correction)” are known methods for guaranteeing arrival of packets transmitted from a transmission terminal to a reception terminal over a transmission channel in which a packet loss occurs.
In the ARQ method, packets are given sequence numbers that indicate an order before being transmitted, thereby allowing a reception terminal to detect any packet that is not received at the reception terminal and to issue a retransmission request to the transmission terminal.
In the FEC method, on the other hand, redundant packets are associated with packets to be transmitted and, when there is a packet that is not received at a reception terminal, the redundant packet is used to recover the lost packet. In the FEC method, there is what is called a “rateless code” which allows redundant packets to be limitlessly generated from source packets that are the sources of redundant packets and allows source packets to be decoded from redundant packets at the reception terminal.
FIG. 9 is a block diagram illustrating an exemplary configuration of a communication system according to a related art that uses a rateless code to guarantee arrival of packets. Referring to FIG. 9, the communication system includes a transmission terminal 110 and a reception terminal 120 that communicate over a network 130.
The transmission terminal 110 includes a source packet transmission unit 111 and a rateless code encoder 114. The rateless code encoder 114 includes a transmission buffer 115, an encoded packet generation unit 116, and an ACK reception unit 117. The reception terminal 120, on the other hand, includes a rateless code decoder 121 and a source packet reception unit 125. The rateless code decoder 121 includes a reception buffer 122, an encoded packet reconstruction unit 123, and an ACK generation unit 124.
The communication system in FIG. 9, which uses a rateless code to guarantee arrival of packets, operates as follows.
First, an operation of the transmission terminal 110 will be described.
The source packet transmission unit 111 generates data packets transmitted to the reception terminal 120 and sends the generated packets to the transmission buffer 115 in the rateless code encoder 114. The transmission buffer 115 receives the packets and inserts the received packets in a buffer of the transmission buffer 115 itself. When a maximum allowable number of packets are accumulated in the transmission buffer 115, the transmission buffer 115 sends, to the source packet transmission unit 111, a notification that causes the source packet transmission unit to stop transmitting packets.
The encoded packet generation unit 116 retrieves a predetermined number of source packets from the transmission buffer 115. The encoded packet generation unit 116 encodes the source packets by using a rateless code and transmits the encoded source packets onto the network 130.
Hereinafter, packets encoded using a rateless packet is referred to as an “encoded packet”. Examples of known rateless codes include Random Linear Fountain codes and Raptor codes (NPL 1).
The encoded packet generation unit 116 continues generating encoded packets using source packets of the same type and transmitting the packets until the encoded packet generation unit 116 receives an acknowledgement packet from the ACK reception unit 117. When the encoded packet generation unit 116 receives an acknowledgement packet from the ACK reception unit 117, the encoded packet generation unit 116 discards the source packets currently being used and retrieves the predetermined number of next source packets from the transmission buffer 115.
The number of source packets to be encoded by the rateless code encoder 114 at a time can be determined as a parameter.
Next, an operation of the reception terminal 120 will be described.
When the rateless code decoder 121 receives a predetermined number of packets transmitted from the network 130, the rateless code decoder 121 attempts to decode the packets by using a rateless code.
When the decoding is completed, the rateless code decoder 121 sends the decoded packets to the source packet reception unit 125. In addition, the ACK generation unit 124 transmits an arrival acknowledgement packet to the transmission terminal 110. On the other hand, when decoding is not completed, the rateless code decoder 121 waits for new packets from the network 130.
In the communication system illustrated in FIG. 9, “the number of packets” to be encoded by the rateless code encoder 114 is used as a parameter that is set for the purpose of effectively exploiting a network bandwidth. For example, the number of source packets and other parameters used by the rateless code encoder 114 for encoding at transmission of the next packets can be changed by adding network information to an ACK which is transmitted when decoding is completed. In this way, the network bandwidth can be effectively exploited by setting a parameter that is appropriate for the current network state.